NOTE: This code utilizes Seurat v4.1.1. You will need to install seurat version 4.1.1 using ‘remotes’. We recommend installing the version in separate location from your regular seurat package.

remotes::install_version('Seurat', version = '4.1.1', lib = "C:/Users/Ji Lab/AppData/Local/R/alt_packages/Seurat 4.1.1" )

Import Libraries

library(Seurat, lib.loc = "C:/Users/Ji Lab/AppData/Local/R/alt_packages/Seurat 4.1.1")
library(dplyr)
library(ggplot2)
library(patchwork)
sessioninfo::session_info()%>%
  details::details(
    summary = 'Current session info',
    open    = TRUE
  )
Current session info

─ Session info ───────────────────────────────────────────────────────────────
 setting  value
 version  R version 4.2.2 (2022-10-31 ucrt)
 os       Windows 10 x64 (build 22621)
 system   x86_64, mingw32
 ui       RTerm
 language (EN)
 collate  English_United States.utf8
 ctype    English_United States.utf8
 tz       America/New_York
 date     2023-01-19
 pandoc   2.19.2 @ C:/Program Files/RStudio/resources/app/bin/quarto/bin/tools/ (via rmarkdown)

─ Packages ───────────────────────────────────────────────────────────────────
 !  package         * version   date (UTC) lib source
    abind             1.4-5     2016-07-21 [1] CRAN (R 4.2.0)
    assertthat        0.2.1     2019-03-21 [1] CRAN (R 4.2.1)
    bslib             0.4.2     2022-12-16 [1] CRAN (R 4.2.2)
    cachem            1.0.6     2021-08-19 [1] CRAN (R 4.2.1)
    cli               3.4.1     2022-09-23 [1] CRAN (R 4.2.1)
    clipr             0.8.0     2022-02-22 [1] CRAN (R 4.2.1)
    cluster           2.1.4     2022-08-22 [2] CRAN (R 4.2.2)
    codetools         0.2-18    2020-11-04 [2] CRAN (R 4.2.2)
    colorspace        2.0-3     2022-02-21 [1] CRAN (R 4.2.1)
    cowplot           1.1.1     2020-12-30 [1] CRAN (R 4.2.1)
    data.table        1.14.6    2022-11-16 [1] CRAN (R 4.2.2)
    DBI               1.1.3     2022-06-18 [1] CRAN (R 4.2.1)
    deldir            1.0-6     2021-10-23 [1] CRAN (R 4.2.0)
    desc              1.4.2     2022-09-08 [1] CRAN (R 4.2.1)
    details           0.3.0     2022-03-27 [1] CRAN (R 4.2.2)
    digest            0.6.30    2022-10-18 [1] CRAN (R 4.2.1)
    dplyr           * 1.0.10    2022-09-01 [1] CRAN (R 4.2.1)
    ellipsis          0.3.2     2021-04-29 [1] CRAN (R 4.2.1)
    evaluate          0.19      2022-12-13 [1] CRAN (R 4.2.2)
    fansi             1.0.3     2022-03-24 [1] CRAN (R 4.2.1)
    fastmap           1.1.0     2021-01-25 [1] CRAN (R 4.2.1)
    fitdistrplus      1.1-8     2022-03-10 [1] CRAN (R 4.2.1)
    future            1.30.0    2022-12-16 [1] CRAN (R 4.2.2)
    future.apply      1.10.0    2022-11-05 [1] CRAN (R 4.2.2)
    generics          0.1.3     2022-07-05 [1] CRAN (R 4.2.1)
    ggplot2         * 3.4.0     2022-11-04 [1] CRAN (R 4.2.2)
    ggrepel           0.9.2     2022-11-06 [1] CRAN (R 4.2.2)
    ggridges          0.5.4     2022-09-26 [1] CRAN (R 4.2.1)
    globals           0.16.2    2022-11-21 [1] CRAN (R 4.2.2)
    glue              1.6.2     2022-02-24 [1] CRAN (R 4.2.1)
    goftest           1.2-3     2021-10-07 [1] CRAN (R 4.2.0)
    gridExtra         2.3       2017-09-09 [1] CRAN (R 4.2.1)
    gtable            0.3.1     2022-09-01 [1] CRAN (R 4.2.1)
    htmltools         0.5.4     2022-12-07 [1] CRAN (R 4.2.2)
    htmlwidgets       1.6.0     2022-12-15 [1] CRAN (R 4.2.2)
    httpuv            1.6.6     2022-09-08 [1] CRAN (R 4.2.2)
    httr              1.4.4     2022-08-17 [1] CRAN (R 4.2.1)
    ica               1.0-3     2022-07-08 [1] CRAN (R 4.2.1)
    igraph            1.3.5     2022-09-22 [1] CRAN (R 4.2.1)
    irlba             2.3.5.1   2022-10-03 [1] CRAN (R 4.2.2)
    jquerylib         0.1.4     2021-04-26 [1] CRAN (R 4.2.1)
    jsonlite          1.8.3     2022-10-21 [1] CRAN (R 4.2.2)
    KernSmooth        2.23-20   2021-05-03 [2] CRAN (R 4.2.2)
    knitr             1.41      2022-11-18 [1] CRAN (R 4.2.2)
    later             1.3.0     2021-08-18 [1] CRAN (R 4.2.1)
    lattice           0.20-45   2021-09-22 [2] CRAN (R 4.2.2)
    lazyeval          0.2.2     2019-03-15 [1] CRAN (R 4.2.1)
    leiden            0.4.3     2022-09-10 [1] CRAN (R 4.2.1)
    lifecycle         1.0.3     2022-10-07 [1] CRAN (R 4.2.1)
    listenv           0.9.0     2022-12-16 [1] CRAN (R 4.2.2)
    lmtest            0.9-40    2022-03-21 [1] CRAN (R 4.2.1)
    magrittr          2.0.3     2022-03-30 [1] CRAN (R 4.2.1)
    MASS              7.3-58.1  2022-08-03 [2] CRAN (R 4.2.2)
    Matrix            1.5-4     2022-11-14 [1] R-Forge (R 4.2.2)
    matrixStats       0.63.0    2022-11-18 [1] CRAN (R 4.2.2)
    mgcv              1.8-41    2022-10-21 [2] CRAN (R 4.2.2)
    mime              0.12      2021-09-28 [1] CRAN (R 4.2.0)
    miniUI            0.1.1.1   2018-05-18 [1] CRAN (R 4.2.1)
    munsell           0.5.0     2018-06-12 [1] CRAN (R 4.2.1)
    nlme              3.1-160   2022-10-10 [2] CRAN (R 4.2.2)
    parallelly        1.33.0    2022-12-14 [1] CRAN (R 4.2.2)
    patchwork       * 1.1.2     2022-08-19 [1] CRAN (R 4.2.1)
    pbapply           1.6-0     2022-11-16 [1] CRAN (R 4.2.1)
    pillar            1.8.1     2022-08-19 [1] CRAN (R 4.2.1)
    pkgconfig         2.0.3     2019-09-22 [1] CRAN (R 4.2.1)
    plotly            4.10.1    2022-11-07 [1] CRAN (R 4.2.2)
    plyr              1.8.8     2022-11-11 [1] CRAN (R 4.2.2)
    png               0.1-8     2022-11-29 [1] CRAN (R 4.2.2)
    polyclip          1.10-4    2022-10-20 [1] CRAN (R 4.2.1)
    progressr         0.12.0    2022-12-13 [1] CRAN (R 4.2.2)
    promises          1.2.0.1   2021-02-11 [1] CRAN (R 4.2.1)
    purrr             0.3.5     2022-10-06 [1] CRAN (R 4.2.1)
    R6                2.5.1     2021-08-19 [1] CRAN (R 4.2.1)
    RANN              2.6.1     2019-01-08 [1] CRAN (R 4.2.1)
    RColorBrewer      1.1-3     2022-04-03 [1] CRAN (R 4.2.0)
    Rcpp              1.0.9     2022-07-08 [1] CRAN (R 4.2.1)
    RcppAnnoy         0.0.20    2022-10-27 [1] CRAN (R 4.2.2)
    reshape2          1.4.4     2020-04-09 [1] CRAN (R 4.2.1)
    reticulate        1.26-9000 2022-11-29 [1] Github (rstudio/reticulate@a1d7f7f)
    rlang             1.0.6     2022-09-24 [1] CRAN (R 4.2.1)
    rmarkdown         2.19      2022-12-15 [1] CRAN (R 4.2.2)
    ROCR              1.0-11    2020-05-02 [1] CRAN (R 4.2.1)
    rpart             4.1.19    2022-10-21 [2] CRAN (R 4.2.2)
    rprojroot         2.0.3     2022-04-02 [1] CRAN (R 4.2.1)
    rstudioapi        0.14      2022-08-22 [1] CRAN (R 4.2.1)
    Rtsne             0.16      2022-04-17 [1] CRAN (R 4.2.1)
    sass              0.4.4     2022-11-24 [1] CRAN (R 4.2.2)
    scales            1.2.1     2022-08-20 [1] CRAN (R 4.2.1)
    scattermore       0.8       2022-02-14 [1] CRAN (R 4.2.1)
    sctransform       0.3.5     2022-09-21 [1] CRAN (R 4.2.2)
    sessioninfo       1.2.2     2021-12-06 [1] CRAN (R 4.2.1)
 VP Seurat          * 4.1.1     2022-11-18 [?] CRAN (R 4.2.2) (on disk 4.3.0)
    SeuratObject    * 4.1.3     2022-11-07 [1] CRAN (R 4.2.2)
    shiny             1.7.4     2022-12-15 [1] CRAN (R 4.2.2)
    sp                1.5-1     2022-11-07 [1] CRAN (R 4.2.2)
    spatstat.core     2.4-4     2022-05-18 [1] CRAN (R 4.2.1)
    spatstat.data     3.0-0     2022-10-21 [1] CRAN (R 4.2.2)
    spatstat.geom     3.0-3     2022-10-25 [1] CRAN (R 4.2.2)
    spatstat.random   3.0-1     2022-11-03 [1] CRAN (R 4.2.2)
    spatstat.sparse   3.0-0     2022-10-21 [1] CRAN (R 4.2.2)
    spatstat.utils    3.0-1     2022-10-19 [1] CRAN (R 4.2.2)
    stringi           1.7.8     2022-07-11 [1] CRAN (R 4.2.1)
    stringr           1.5.0     2022-12-02 [1] CRAN (R 4.2.2)
    survival          3.4-0     2022-08-09 [2] CRAN (R 4.2.2)
    tensor            1.5       2012-05-05 [1] CRAN (R 4.2.0)
    tibble            3.1.8     2022-07-22 [1] CRAN (R 4.2.1)
    tidyr             1.2.1     2022-09-08 [1] CRAN (R 4.2.1)
    tidyselect        1.2.0     2022-10-10 [1] CRAN (R 4.2.1)
    utf8              1.2.2     2021-07-24 [1] CRAN (R 4.2.1)
    uwot              0.1.14    2022-08-22 [1] CRAN (R 4.2.1)
    vctrs             0.5.1     2022-11-16 [1] CRAN (R 4.2.2)
    viridisLite       0.4.1     2022-08-22 [1] CRAN (R 4.2.1)
    withr             2.5.0     2022-03-03 [1] CRAN (R 4.2.1)
    xfun              0.35      2022-11-16 [1] CRAN (R 4.2.2)
    xml2              1.3.3     2021-11-30 [1] CRAN (R 4.2.1)
    xtable            1.8-4     2019-04-21 [1] CRAN (R 4.2.1)
    yaml              2.3.6     2022-10-18 [1] CRAN (R 4.2.1)
    zoo               1.8-11    2022-09-17 [1] CRAN (R 4.2.2)

 [1] C:/Users/Ji Lab/AppData/Local/R/win-library/4.2
 [2] C:/Program Files/R/R-4.2.2/library

 V ── Loaded and on-disk version mismatch.
 P ── Loaded and on-disk path mismatch.

──────────────────────────────────────────────────────────────────────────────


Load ST object

n23_p1 = readRDS('C:/Users/Ji Lab/Documents/JID manuscript/andrew_scripts/orig_obj/st/n23_p1.Rds')

Load Predictions

From n23_p1_seurat_prediction_merged_confident_CT_020621.Rmd

# Load in ns_int predictions
n23p1_prediction.ns_int = read.table("C:/Users/Ji Lab/Documents/JID manuscript/andrew_scripts/orig_obj/st/n23p1_predictions_ns_int_res0.6_ref.txt",
                              sep = "\t",row.names = 1,header=T,stringsAsFactors = F)

#filter out predictions for spots that were removed
n23_p1_prediction.ns_int_filtered = n23p1_prediction.ns_int[match(colnames(n23_p1),row.names(n23p1_prediction.ns_int)),]
n23_p1$predicted.id = n23_p1_prediction.ns_int_filtered$predicted.id
Idents(n23_p1) = 'predicted.id'
SpatialDimPlot(n23_p1, images = "rep2")

Feature and Violin Plots

for (i in 2:42)
{
  id_title = colnames(n23p1_prediction)[i]
  n23_p1@meta.data$pred = as.numeric(n23p1_prediction[,i])
  p = SpatialFeaturePlot(n23_p1,features = "pred")
  png(paste("n23p1_stfeatureplot_",id_title,".png",sep=""),width = 12, height=4, units = "in", res = 300)
  print(p)
  dev.off()
  p2 = VlnPlot(n23_p1,features = "pred",group.by = "SCT_snn_res.0.8")
  pdf(paste("n23p1_vlnplot_res0.8_",id_title,".pdf",sep=""),width = 6, height=4)
  print(p2)
  dev.off()
}
## [1] "prediction.score.ns_int_res0.6_C2"

## [1] "prediction.score.ns_int_res0.6_C4"

## [1] "prediction.score.ns_int_res0.6_C20"

Add IFE/PSU designations to object

IFE/PSU designations made based on histology

#############
# Check IFE PSU 
# Get IFE/PSU designations and add to each object
n23_p1 = subset(n23_p1, nCount_Spatial > 200)

spot_pos1 = read.table(paste(vis.dir,"IFE_PSU.csv",sep=""),sep = ",",row.names = 1,header = T,stringsAsFactors = F)
spot_pos2 = read.table(paste(vis.dir2,"IFE_PSU.csv",sep=""),sep = ",",row.names = 1,header = T,stringsAsFactors = F)
pos1_names = paste("rep1_",rownames(spot_pos1),sep="")
pos2_names = paste("rep2_",rownames(spot_pos2),sep="")

rownames(spot_pos1) = pos1_names
rownames(spot_pos2) = pos2_names

n23_p1_ifepsu = rep("Other",ncol(n23_p1))
n23_p1_ifepsu_rep1_match = match(rownames(spot_pos1),colnames(n23_p1))
n23_p1_ifepsu_rep1_match_filt = n23_p1_ifepsu_rep1_match[which(!is.na(n23_p1_ifepsu_rep1_match))]
n23_p1_ifepsu[n23_p1_ifepsu_rep1_match_filt] = spot_pos1[,1]
n23_p1_ifepsu_rep2_match = match(rownames(spot_pos2),colnames(n23_p1))
n23_p1_ifepsu_rep2_match_filt = n23_p1_ifepsu_rep2_match[which(!is.na(n23_p1_ifepsu_rep2_match))]
n23_p1_ifepsu[n23_p1_ifepsu_rep2_match_filt] = spot_pos2[,1]

n23_p1$IFE_PSU = n23_p1_ifepsu
Idents(n23_p1) = 'IFE_PSU'
png(paste("n23_p1_IFE_PSU_check.png",sep=""), units = "in", height = 5, width = 10, res=300)
p=SpatialDimPlot(n23_p1)
print(p)
dev.off()